The present invention relates to the retrieval of information over a network and more particularly to a client-side electronic commerce (e-commerce) service system.
As networks and computers have been able to deliver information faster, users have begun to expect instantaneous information and information available from anywhere in the world. The vast amount of information available has created an overload of information for the user.
To service user needs, product and service features, options, and rules governing valid selections for e-commerce product and service offerings need to change often in a dynamic web environment. However, building web pages to reflect product selections is a tedious, error-prone, and time-consuming process. In addition, updated information is not easily maintained.
The nature of wide area public networks such as, for example, the Internet, introduces unpredictable network delays in the communication between a browser on a client and a web server. This latency severely hampers the effectiveness of any e-commerce web application as the user is forced to wait for server validation as each selection is made. If a network timeout occurs, user interest may be lost and a potential sale may also be lost.
Complex product/service configurations present a performance challenge for runtime configuration engines (wherein configuration logic is deduced during user interaction), especially over the Internet where each application round-trip (to the application server and back) introduces additional network delay. In addition, sequential runtime logic hampers the user experience by leading product/service selection through pre-determined paths, and valuable user buying pattern information is lost. Users may not be able to see all of the implications of each selection at the time of the selection.
Another challenge for Internet-based configuration engines is that data downloaded from the application server may be cached upon client machines. Proprietary product/service configuration and pricing information must be secure during and after this download process. However, current caching methods do not provide a method for downloading sensitive information without jeopardizing vendor/merchant data security.
Existing solutions to these challenges typically fall into three categories: 1) hand-coded Internet user interfaces (UIs) which act as a facade to a server-side computing engine, 2) server-side generated user interfaces which correlate to server-side computation logic; or 3) client-side generated user interfaces which correlate to client-side, sequential logic.
A non-generated (hand-coded) UI is impractical and expensive to maintain for a dynamically changing e-commerce product/service line, potentially presented to a variety of different users at different geographic locations. Maintenance of the UI in terms of both up-to-date product/service features and up-to-date international location-specific versions may be compromised. In addition, time-to-market is hampered by Website development time and cost. Further, product/service costs may rise, and user satisfaction may decline as inaccurate orders are introduced by this error-prone process. This manual process of constructing the UI, building the configuration, and connecting the two together can not easily guarantee the completeness of complex product/services configurations.
Server-side product/service selection validation techniques may result in a poor user experience due to unpredictable delays caused by Internet latency. Because of this latency, the user may often give up and abandon his or her shopping session, and the potential sale is lost. If the user does continue, any network connection interrupt during the shopping session will typically force the user to restart the product/service selection process from the beginning.
With client-side validation, user selections are limited to only valid choices. Users can pick what they want without having to worry about being rejected by the server at some later time. With server-side validation, the user is allowed to make invalid selections and must wait for a round trip to the server and back for invalidation of the erroneous selection. If the selection is invalid, more user time is wasted trying to undo the selection to get back to a valid state.
Client-side validation may present the user with immediate product knowledge. Immediate product knowledge allows the user to see the implication of each option selection, and to quickly deduce product/service feature differentiators; this allows the user to feel more comfortable with the buying decision. Without this information, users are often required to compare (and remember) multiple pages of product service fact sheets to identify the differentiators. Users may also feel less confidence in their purchase decision, and if they continue, often make inaccurate choices.
Server-side validation necessarily requires more server-side processing, and thus limits the ultimate number of users that can be served by a single server. In addition, runtime configuration logic performs less efficiently, further hampering the user experience and increasing the cost of runtime computing resources. If product/service validation is being deduced logically at runtime, the user is forced to wait for this logic to execute between each selection. If the logic is executed on the server, the additional network delay increases the wait time. If the logic is executed on the client, client computing resources costs rise.
Sequential runtime configuration logic also limits the user interface paradigm, hampering the user experience by leading product/service selection through predetermined paths. Valuable user buying pattern information may be lost as the user is forced to follow these paths. Because only a portion of the product/service selection options are presented at one time, users may not be able to see all of the implications of each selection at the time of the selection.
Sequential logic may limit configuration user interface functionality. Simple features such as single-step xe2x80x9cundoxe2x80x9d or single-selection override are often limited to a single user interface page, if presented at all. Each page of a multi-paged user interface operates as an independent product/service configuration subset. Sequential logic is also costly to maintain as product/service configuration rules must be hand-coded in a hierarchical program. All updates to the product/service model must preserve an accurate hierarchy.
In addition, client-side generated user interfaces to date have downloaded data in text format, leaving proprietary vendor/merchant product/service configuration and pricing data insecurely cached upon client workstations.
Server-side generated user interfaces require a round-trip to the application web server, as well as an additional web page download, each time the user progresses beyond the product/service selection options presented on one page. This introduces additional network latency and unnecessary user xe2x80x9cwaitxe2x80x9d time. In addition, server-side generated interfaces limit the user by interaction leading the user through predetermined product/service selection paths.
A method and system for processing data are described. In one embodiment, a constraint-based configuration file is generated from a pre-defined data configuration domain at a server. In addition, the constraint-based configuration file is mapped into a plurality of display pages at a client, and a page of the plurality of display pages is updated directly from the constraint-based configuration file.